#ifndef TestEntityTable_h
#define TestEntityTable_h

#include <vector>
#include <cppunit/extensions/HelperMacros.h>
#include "Type.h"
#include "EntityTable.h"
#include "Utilities.h"

class EntityTableTest : public CPPUNIT_NS::TestFixture 
{
	Type::List::LineEntity validEntityInput, invalidEntityInput;
	Type::List::Line validLineInput, invalidLineInput, nonExistLineInput;

	EntityTable entityTb;
	std::string msg;

	CPPUNIT_TEST_SUITE( EntityTableTest );
	CPPUNIT_TEST( testInsert );
	CPPUNIT_TEST( testGet );
	CPPUNIT_TEST( testIsLineEntity );
	CPPUNIT_TEST( testIsExists );
	CPPUNIT_TEST_SUITE_END();
private:
	void testInsert(Type::List::Line, Type::List::LineEntity, bool, std::string);
	void testGetEntities(Type::Index::Line, bool, Type::List::LineEntity, std::string);
	void testGetLines(Type::Entity::Line, bool, Type::List::Line, std::string);
	void testIsLineEntity(Type::List::Line, Type::List::LineEntity, bool, std::string);
	void testIsExists(Type::List::Line, Type::List::LineEntity, bool, std::string);
public:
	void setUp();
	void tearDown();

	void testInsert();
	void testGet();
	void testIsExists();
	void testIsLineEntity();
};
#endif